package com.mdd.store.service;


import com.baomidou.mybatisplus.extension.service.IService;
import com.mdd.common.base.page.PageValidate;
import com.mdd.common.core.PageResult;
import com.mdd.common.validate.StatusValidate;
import com.mdd.store.entity.Store;
import com.mdd.store.validate.StoreCreateValidate;
import com.mdd.store.validate.StoreSearchValidate;
import com.mdd.store.validate.StoreUpdateValidate;
import com.mdd.store.vo.StoreDetailVo;
import com.mdd.store.vo.StoreListedVo;
import java.util.List;

/**
 * 门店（店铺）服务接口类
 * @author LikeAdmin
 */
public interface IStoreService extends IService<Store> {

    /**
     * 门店（店铺）列表
     *
     * @author LikeAdmin
     * @param pageValidate 分页参数
     * @param searchValidate 搜索参数
     * @return PageResult<PmsStoreListedVo>
     */
    PageResult<StoreListedVo> list(PageValidate pageValidate, StoreSearchValidate searchValidate);
    List<StoreListedVo> selectList();
    /**
     * 门店（店铺）详情
     *
     * @author LikeAdmin
     * @param id 主键ID
     * @return PmsStoreDetailVo
     */
    StoreDetailVo detail(Long id);

    /**
     * 门店（店铺）新增
     *
     * @author LikeAdmin
     * @param createValidate 参数
     */
    void add(StoreCreateValidate createValidate);

    /**
     * 门店（店铺）编辑
     *
     * @author LikeAdmin
     * @param updateValidate 参数
     */
    void edit(StoreUpdateValidate updateValidate);

    /**
     * 状态更新
     * @param status
     */
    void updateStatus(StatusValidate status);

    /**
     * 门店（店铺）删除
     *
     * @author LikeAdmin
     * @param id 主键ID
     */
    void del(Long id);


    List<StoreListedVo> listAllByDeptCode();
}
